package com.example;

/**
 * @desc:
 * @author: Shoko
 * @date: 2025/6/13
 */
// 6. 测试类
public class IteratorPatternTest {
    public static void main(String[] args) {
        // 初始化商品数组
        String[] products = {"手机", "电脑", "手表", "耳机"};
        ProductAggregate aggregate = new ProductAggregate(products);

        // 测试前向迭代器
        testIterator(aggregate.createIterator());

        System.out.println("---------------------");

        // 测试后向迭代器（直接创建后向迭代器实例）
        testIterator(new BackwardIterator(aggregate));
    }

    // 通用遍历方法：支持任意实现了 Iterator 接口的迭代器
    private static void testIterator(Iterator iterator) {
        iterator.first(); // 定位到起始位置
        while (!iterator.isDone()) {
            iterator.currentItem(); // 输出当前元素
            iterator.next();        // 移动到下一个
        }
    }
}
